<h5>Comunicando el hardware Wiring y Blender/Phyton</h5>
<p>Este tutorial presenta la comunicaci&oacute;n b&aacute;sica entre el hardware Wiring y Blender/Phyton <a href="http://www.blender.org/">http://www.blender.org/</a>. El objetivo principal del tutorial ser&aacute; enviar datos a la tarjeta Wiring, la tarjeta Wiring leer&aacute; el dato y encender&aacute; o pagar&aacute; el LED de la tarjeta respectivamente. Se asume que el software Wiring y Blender/Phyton est&aacute;n instalados y los ajustes apropiados de Wiring han sido completados. Para m&aacute;s informaci&oacute;n acerca de la instalaci&oacute;n de Wiring revise los <a href="http://wiring.org.co/learning/tutorials/">tutoriales</a> sobre la instalaci&oacute;n y los ajustes del software.</p>
<p>Nota: Este tutorial ha sido probado usando Blender 2.49 el cual puede ser descargado <a href="http://download.blender.org/release/">aqu&iacute;</a> y Phyton 2.5 el cual puede ser descargado <a href="http://www.python.org/download/releases/2.5.6/">aqu&iacute;</a>.</p>
<h5>Paso 1</h5>
<p>Copie y pegue el siguiente c&oacute;digo en el editor Wiring: Verifique que su programa est&eacute; libre de errores de compilaci&oacute;n presionando el bot&oacute;n Compile/Verify en la barra de men&uacute;. Presione el bot&oacute;n Upload en la barra de men&uacute;. En caso de un error de sintaxis el entorno Wiring imprimir&aacute; el mensaje de error de otro modo imprimir&aacute; que la carga se ha completado satisfactoriamente, el proceso de carga activar&aacute; los LEDs Rx/Tx en el hardware Wiring. El nuevo programa empezar&aacute; autom&aacute;ticamente despu&eacute;s de la carga. Use el bot&oacute;n Serial Monitor para ver los datos entrantes desde la tarjeta Wiring, luego cierre el Serial Monitor otra vez.</p>
<pre>
/**
 * Simple Read/ Blender/Python
 * 
 * Read data from the serial port and turn ON the onboard LED if
 * the character received is an 'a'
 * For the Wiring boards v1 the on-board LED is on pin 48, 
 * on Wiring S the on-board LED is on pin 15.
 */

int data; // to read the char

void setup() {
  Serial.begin(9600);
  pinMode(WLED, OUTPUT);
}

void loop() {
  if(Serial.available()) {      // if data available
    data = Serial.read();       // read data
    if(data == 'H') {           // if value read is character 'a'
      digitalWrite(WLED, HIGH); // turn ON the onboard LED
    } else {
      digitalWrite(WLED, LOW);  // if not turn it OFF
    }
  }
  delay(100); // wait 100ms for next read
}
</pre>
<p>&nbsp;</p>
<h5>Paso 2</h5>
<p>Descargue PySerial <a href="http://pyserial.sourceforge.net/">aqu&iacute;</a>. Descomprima el archivo y ubique la carpeta &quot;serial&quot; con las otras librer&iacute;as de Python para Blender.</p>
<p><b>Windows:</b></p>
<p>Ubique la carpeta &quot;serial&quot; en la carpeta &quot;.blender/scripts&quot; la cual est&aacute; dentro de la carpeta Blender.</p>
<p><b>Mac OS X:</b></p>
<p>Active los archivos ocultos abriendo Terminal y corriendo el las siguientes dos lineas:</p>
<pre>
username$ defaults write com.apple.Finder AppleShowAllFiles yes
username$ Killall Finder
</pre>
<p>Para desactivar los archivos ocultos, haga los mismo pero use &quot;no&quot; a cambio de &quot;yes&quot;.</p>
<p>Ubique la carpeta &quot;serial&quot; en la carpeta &quot;.blender/scripts&quot; la cual est&aacute; dentro de la carpeta Blender.</p>
<p>&nbsp;</p>
<h5>Paso 3</h5>
<p>El pr&oacute;ximo paso es ajustar las cosas en Blender. Ajuste la interfase en modo &quot;Scripting&quot;. </p>
<p><img src="imgs/blender-01.png" width="700" height="423" /></p>
<p>&nbsp;</p>
<h5>Paso 4</h5>
<p>Copie el siguiente c&oacute;digo en el editor y nombrelo &quot;script.py&quot;.</p>
<pre>
import serial
from time   import sleep
# you will need the name of your serial port
# check in wiring - tools - menu
serialport = serial.Serial('COM2', 9600)

sleep(4)    

while 1:
     serialport.write('H')
     sleep(1)
     serialport.write('L')
     sleep(1)

serialport.close()
</pre>
<p><img src="imgs/blender-05.png" width="489" height="316" /></p>
<h5>Paso 5</h5>
<p>Asigne un objeto. Seleccione un objeto en la escena y de click en las propiedades l&oacute;gicas en &quot;Buttons Window&quot;.</p>
<p>Adicione un sensor &quot;always&quot; y conectelo con el c&oacute;digo de python. Esto significa que el c&oacute;digo de python se ejecutar&aacute; cuando el game engine este corriendo. Deber&iacute;a verse as&iacute;: </p>
<p><img src="imgs/blender-03.png" width="979" height="201" /></p>
<p>&nbsp;</p>
<h5>Paso 6</h5>
<p>Corra el game engine. Haga click en el '3D Panel' y presione 'P'.</p>
